package au.org.uptick.mygwtpapp.client.gin;

import au.org.uptick.mygwtpapp.client.presenter.MainPagePresenter;
import au.org.uptick.mygwtpapp.client.presenter.ResponsePresenter;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.inject.client.AsyncProvider;
import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.google.inject.Provider;
import com.gwtplatform.dispatch.client.gin.DispatchAsyncModule;
import com.gwtplatform.mvp.client.proxy.PlaceManager;

@GinModules({DispatchAsyncModule.class, MyModule.class})
public interface MyGinjector extends Ginjector {

    EventBus getEventBus();

    PlaceManager getPlaceManager();

    Provider<MainPagePresenter> getMainPagePresenter();

    AsyncProvider<ResponsePresenter> getResponsePresenter();
}
